/**
 * $version:  0.1 
 * $Date: 2012-03-19 
 *
 * Copyright (C) 2010-2011 Jawa Software. All rights reserved.
 *
 */

package org.jawa.cluster;

/**
 * 集群事件监听器.使用{@link ClusterManager#addListener(ClusterEventListener)} 增加新的监听.
 * 
 */
public interface ClusterEventListener {

	/**
	 * 当前JVM加入集群.
	 */
	void joinedCluster();

	/**
	 * 另个一个JVM加入集群.
	 * 
	 * @param nodeID
	 *            加入集群的节点.
	 */
	void joinedCluster(byte[] nodeID);

	/**
	 * 当前JVM离开集群.
	 */
	void leftCluster();

	/**
	 *另外一个JVM 离开集群.
	 * 
	 * @param nodeID
	 *            离开集群的节点.
	 */
	void leftCluster(byte[] nodeID);

	/**
	 * 通知集群当前JVM成是高级集群成员,事件可以发生在集群建立时,也可能发生成集群中高级节点离开时,此JVM升级为新的高级成员.
	 */
	void markedAsSeniorClusterMember();
}
